iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
自我挑戰組

資料結構面面觀系列 第 10

演算法效率評估指南(上)

  • 分享至 

  • xImage
  •  

【定義】指用來計算某些演算法所撰寫的程式,在經過編譯之後,

實際執行所需要的時間。

【評估方法】

一、時間複雜度(Time Complexity)

二、空間複雜度(Space Complexity)

計算演算法所撰寫的程式在經過編譯之後實際執行所需要的時間
假設在程式中有一敘述:count=count+1;
如果以上這一行敘述執行所需要的時間為t,而且這一行敘述被執行n次時,
則此敘述總共了 nxt 的時間
影響程式執行時間包括下列因素:
資料量:程式所輸入資料量多少有關
演算法:使用演算法(Algorithm)所需時間的複雜度
程式語言:演算法轉換成程式碼過程中的程式語言
編譯程式:將原始程式碼翻譯成機器碼所需的時間
電腦硬體:指令在電腦中執行的速度(與CPU 有關)
• 實務上有可能因為程式編譯的過程或是電腦硬體設備的差異使得效率分析會因電腦的軟硬體不同而有不同的結果。因此,一般而言,效率的評估方式可分為兩大類:

ㄧ、時間複雜度(TIME COMPLEXITY):

【定義】

是指從主程式呼叫該副程式開始到完成之過程,所有花費的「執行時間」。

影響執行時間因素:

(1) 硬體部份:機器的CPU執行速度 不考慮

(2) 軟體部份:演算法的好壞是由執行時間來決定,因此,

執行時間=執行次數X每次執行所需時間

但是,由於每次執行所需時間會受CPU的影響(所以不考慮,則設為常數1) 所以:

執行時間=執行次數X1

因此,

執行時間=執行次數


上一篇
結構化程式設計
下一篇
演算法效率評估指南(下)
系列文
資料結構面面觀13
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言